import CardFunctions from "../Common/CardFunctions";
import { GameData } from "../Data/GameData";
import { MainState } from "../Data/GameEnum";
import Block from "../Game/Block";
import BlockGroup from "../Game/BlockGroup";
import GameManager from "./GameManager";
import TimerManager from "./TimerManager";

const { ccclass, property } = cc._decorator;

/** 事件 */
export const GameEventData = {
    拖拽完成: "拖拽完成",
};

@ccclass
export default class GameEventManager {
    static AddListener() {
        cc.systemEvent.on(GameEventData.拖拽完成, this.On_拖拽完成, this);
    }

    static async On_拖拽完成(msg) {
        // console.log(`On_拖拽完成`);

        GameData.mainState = MainState.上桌;
        GameManager.Instance.Main();

        //     let arrCardGroup_grid = CardFunctions.Get_arrCardGroup_grid()
        //     // for (let index = 0; index < array.length; index++) {
        //     //     const item = array[index];
        //     //     console.log(`item`, item);
        //     //     console.log(`item.color`, item.color);
        //     // }

        //     // console.log(`GameData.arrCards`, GameData.arrCards);

        //     // let 装填list = [];

        //     for (let index2 = 0; index2 < arrCardGroup_grid.length; index2++) {
        //         const CardGroup: BlockGroup = arrCardGroup_grid[index2];
        //         CardGroup.准备上桌();

        //         // for (let index = 0; index < GameData.arrBoard.length; index++) {
        //         //     const board: Board = GameData.arrBoard[index];
        //         //     // card.node.scale += 0.1;
        //         //     // await new Promise(resolve => this.scheduleOnce(resolve, 0.1));

        //         //     for (let index_card = 0; index_card < board.cardList.length; index_card++) {
        //         //         const card: Card = board.cardList[index_card];

        //         //         for (let index3 = 0; index3 < CardGroup.block_list.length; index3++) {
        //         //             const block: Block = CardGroup.block_list[index3];
        //         //             // block.node.scale = 0.6;

        //         //             // console.log(`card.color`, card.color);
        //         //             // console.log(`block.color`, block.color);

        //         //             if (board.id === block.id && block.is装填 === false && board.is装填 === false && !board.isCover) {
        //         //                 block.is装填 = true;
        //         //                 board.is装填 = true;

        //         //                 // let p1 = block.node.parent.convertToWorldSpaceAR(block.node.position);
        //         //                 // let p2 = card.node.parent.convertToNodeSpaceAR(p1);

        //         //                 装填list.push({
        //         //                     card: board,
        //         //                     block: block,
        //         //                     CardGroup: CardGroup,
        //         //                 })

        //         //                 // cc.tween(card.node)
        //         //                 //     .to(0.3, { position: p2 }, { easing: "" })
        //         //                 //     .call(() => {
        //         //                 //         card.node.parent = block.node;
        //         //                 //         card.node.position = cc.v3(0, 0, 0);
        //         //                 //         card.node.scale = 1;
        //         //                 //     })
        //         //                 //     .start();
        //         //             }
        //         //         }
        //         //     }
        //         // }
        //     }

        //     for (let index = 0; index < GameData.装填list.length; index++) {
        //         const item =  GameData.装填list[index];

        //         let p1 = item.block.node.parent.convertToWorldSpaceAR(item.block.node.position);
        //         let p2 = item.card.node.parent.convertToNodeSpaceAR(p1);
        //         // cc.tween(item.card.node)
        //         //     .by(0.3, { y: 60 }, { easing: "" })
        //         //     .to(0.2, { position: p2 }, { easing: "" })

        //         //     .call(() => {
        //         //         item.card.node.parent = item.block.node;
        //         //         item.card.node.position = cc.v3(0, 0, 0);
        //         //         item.card.node.scale = 1;
        //         //     })
        //         //     .start();

        //         cc.tween(item.card.node)
        //             //.to(0.2, { position: p2 }, { easing: "" })
        //             .bezierTo(0.4, item.card.node.position, cc.v2(400, 600), p2)
        //             .call(() => {
        //                 item.card.node.parent = item.block.node;
        //                 item.card.node.position = cc.v3(0, 0, 0);
        //                 item.card.node.scale = 1;
        //             })
        //             .start();

        //         await TimerManager.AwaitTime(0.2);
        //     }

        //     await TimerManager.AwaitTime(1);

        //     for (let index2 = 0; index2 < arrCardGroup_grid.length; index2++) {
        //         const CardGroup: BlockGroup = arrCardGroup_grid[index2];
        //         let count = 0;
        //         for (let index3 = 0; index3 < CardGroup.block_list.length; index3++) {
        //             const block: Block = CardGroup.block_list[index3];
        //             if (block.is装填 === true) {
        //                 count++;
        //             }
        //         }
        //         if (count === CardGroup.block_list.length) {
        //             await TimerManager.AwaitTime(0.2);
        //             CardGroup.Destroy();
        //         }
        //     }

    }
}

/** 调试 */
window["GameEventManager"] = GameEventManager;